跳转至

目 录

插图目录

图6-1 GMAC总体数据流 6-2

表格目录

表6-1 GMAC寄存器概览(GMAC0基址是0x0_1029_0000;GAMC1基地址是0x0_102A_0000) 6-6

GMAC

概述

千兆以太网模块实现网络接口数据的接收和发送,支持10/100/1000Mbit/s工作模式可配置,支持全双工、半双工工作模式。可实现和CPU端口间的数据通信。

Hi3403V100支持2个GMAC模块。

功能描述

千兆以太网模块有如下功能特点:

  • 支持10/100/1000Mbit/s速率。
  • 支持全双工或半双工工作模式。
  • 支持RMII/RGMII(Reduced Gigabit Media Independent Interface)接口。
  • 提供MDIO接口。
  • 支持帧长有效性检测,丢弃超长帧和超短帧。
  • 支持对输入帧进行CRC校验,可丢弃校验错的帧。
  • 支持对输出帧添加CRC校验。
  • 支持短帧填充功能。
  • 支持对接收和发送帧进行统计计数。
  • 支持广播帧、组播帧和单播帧过滤。
  • 支持IP报文、广播或多播报文限速处理功能可配置。
  • 支持非法包过滤功能。
  • 支持入队中断和超时中断两种中断方式。
  • 支持收发包缓存。

总体数据流

GMAC千兆以太网交换接口的总体数据流如图6-1所示。

GMAC总体数据流

单网口功能配置描述

以太网收发帧管理功能

CPU通过配置描述子队列缓存区,对Ethernet进行收发帧地址管理:

  • 接收时,Ethernet分辨从外网收到的各种数据包,并根据CPU配置的报文缓存信息,包括报文缓存起始地址、报文缓存深度等,将收到的合法包通过总线存放到DDR中。
  • 发送时,Ethernet根据CPU配置的报文缓存信息,包括报文缓存起始地址、报文长度以及其他的报文信息等,通过总线,将存于DDR的报文搬运过来,自行组装成包,然后发送到网络接口上。

以太网收包中断管理功能

中断产生

配置接收方向入队中断使能以及上报入队中断的水线,当逻辑回写到DDR中的描述子个数达到配置水线时,则产生一个接收入队中断。

配置ENA_PMU_INT bit[17] rx_bq入队中断使能;

配置ENA_PMU_INT bit[28] rx_bq入队超时中断使能。

----结束

中断清除

CPU收到接收入队中断或者接收超时中断后,写1清除接收入队中断和接收超时中断。

配置PHY芯片工作状态

以太网交换模块提供MDIO接口实现对PHY芯片的管理。MDIO分为读操作和写操作,下面分别介绍两者的操作步骤。

读操作的配置步骤如下:

CPU向MDIO_SINGLE_CMD bit[12:8]写入PHY芯片地址,向bit[4:0]写入PHY内部寄存器地址,同时配置寄存器MDIO_SINGLE_CMD bit[20]为1,配置bit[17:16]为2’b10,启动MDIO读操作;

MDIO将从外部PHY芯片读回的数据写到MDIO_SINGLE_DATA bit[31:16],并同时将MDIO_SINGLE_CMD bit[20]配置为0;

CPU查询MDIO_SINGLE_DATA bit[31:16]得到MDIO从外部PHY芯片读回的数据。

----结束

写操作的配置步骤如下:

CPU将发送给外部PHY芯片的数据写入MDIO_SINGLE_DATA bit[15:0];

向MDIO_SINGLE_CMD bit[9:8]写入PHY芯片地址,向bit[4:0]写入PHY内部寄存器地址,同时配置bit[20]为1,配置bit[17:16]为1,启动MDIO写操作;

MDIO将MDIO_SINGLE_DATA bit[15:0]的值写入相应的PHY内部寄存器中,完成MDIO的写操作,并自动将MDIO_SINGLE_CMD bit[20]配置为0x0。

----结束

工作模式切换

千兆以太网的工作模式。

  • RMII(10M/100M)
  • RGMII(10M/100M/1000M)

上述模式根据单板硬件连接确认。

下面介绍速率双工切换步骤。

配置MAC_IF_STAT_CTRL bit8:0;

配置PERI_CRG3568/PERI_CRG3584 bit[0](GMAC CRG控制寄存器)为1进行复位,然后再配置为0撤销复位,使配置的工作模式生效;

配置PORT_MODE(MAC端口速率模式寄存器)。

说明

芯片正常工作时不可进行此项配置,建议在初始化时进行配置。

----结束

典型应用

以太网限速功能

以太网交换模块具有对接收报文进行限速的功能,即在某段时间内,当通过的报文数超过设定的最大数量时,后续报文将被丢弃。

以太网交换模块对报文限速分为以下两种。

  • 对IP报文的限速
  • 对广播或多播报文的限速

对IP报文的限速

IP报文的限速以1μs为单位进行计数,在限速时间内,当通过的报文达到限速个数时,后续报文被丢弃。

对IP报文进行限速时,需要做如下配置。

配置CONTROL_WORD bit[21]为1。

配置FLOW_CTRL_PKG_THRSLD。

配置CRF_FLOW_TIME_THRSLD。

----结束

对广播或多播报文的限速

广播或多播报文的限速时间以1μs为单位进行计数,在限速时间内,当通过的报文达到限速个数时,后续报文被丢弃。

对广播或者多播报文进行限速时,需要做如下配置。

配置CONTROL_WORD bit[16]为1。

配置CRF_BM_PKT_THRSLD。

配置CRF_BM_PKT_THRSLD。

----结束

寄存器偏移地址说明

GMAC偏移地址共占用16bit地址空间,其中:

  • 0x0000~0x0fff:用于GMAC以太网口;
  • 0x300c:MAC_IF状态控制寄存器。

GMAC寄存器

概览

GMAC寄存器概览如表6-1所示。

GMAC寄存器概览(GMAC0基址是0x0_1029_0000;GAMC1基地址是0x0_102A_0000)

偏移地址 名称 描述 页码
0x0000 STATION_ADDR_LOW 本机MAC地址寄存器 6-8
0x0004 STATION_ADDR_HIGH 本机MAC地址寄存器 6-8
0x0008 DUPLEX_SEL_RGMII 半双工选择寄存器 6-8
0x000C FD_FC_TYPE 流控帧类型域寄存器 6-9
0x0014 COL_DISTANCE 单次重传包长水线寄存器 6-9
0x0038 PAUSE_THR 发送流控帧间隙寄存器 6-9
0x003C MAX_FRM_SIZE 最大帧长寄存器 6-10
0x0040 PORT_MODE 端口状态寄存器 6-10
0x0044 PORT_EN 通道使能寄存器 6-11
0x0048 PAUSE_EN 流控使能寄存器 6-11
0x0050 SHORT_RUNTS_THR 超短帧界限寄存器 6-11
0x0054 DROP_UNK_CTL_FRM 未知控制帧丢弃使能寄存器 6-12
0x0060 TRANSMIT_CONTROL 常用配置寄存器 6-12
0x0064 REC_FILT_CONTROL 接收帧过滤控制寄存器 6-13
0x0080 RX_OCTETS_OK_CNT 接收有效帧的字节统计寄存器 6-14
0x0084 RX_OCTETS_BAD_CNT 接收错误帧字节统计寄存器 6-14
0x0088 RX_UC_PKTS MAC接收单播帧数统计寄存器 6-14
0x008C RX_MC_PKTS 接收多播帧数统计寄存器 6-14
0x0090 RX_BC_PKTS 接收的广播帧数统计寄存器 6-15
0x00B0 RX_FCS_ERRORS 接收CRC检验错误的帧数统计寄存器 6-15
0x0100 OCTETS_TRANSMITTED_OK 发送成功的好包字节数统计寄存器 6-15
0x0104 OCTETS_TRANSMITTED_BAD 发送成功的错包字节数统计寄存器 6-15
0x0108 TX_UC_PKTS 发送的单播帧数统计寄存器 6-16
0x010C TX_MC_PKTS 发送的多播帧数统计寄存器 6-16
0x0110 TX_BC_PKTS 发送的广播帧数统计寄存器 6-16
0x0158 TX_CRC_ERROR 发送帧长正确CRC错误的帧数统计寄存器 6-16
0x01B0 CF_CRC_STRIP CRC剥离使能寄存器 6-17
0x01B4 MODE_CHANGE_EN 端口模式改变使能寄存器 6-17
0x01C0 COL_SLOT_TIME 半双工冲突重传间隔时间计数器寄存器 6-17
0x01E0 RECV_CONTROL 接收控制寄存器 6-18
0x01E8 VLAN_CODE VLAN Code寄存器 6-18
0x020C CRF_MAX_PACKET 最大过滤包长寄存器 6-19
0x0210 CRF_MIN_PACKET 最小过滤包长寄存器 6-19
0x0214 CONTROL_WORD 控制寄存器 6-19
0x0218 FLOW_CTRL_PKG_THRSLD 限速包个数寄存器 6-20
0x021C CRF_FLOW_TIME_THRSLD 限速时间寄存器 6-21
0x0358 CRF_BM_PKT_THRSLD 广播和多播报文的限速处理包个数寄存器 6-21
0x02E8 TSO_COE_CTRL TSO开关和COE过滤开关寄存器 6-21
0x035C CRF_BM_TIME_THRSLD 广播和多播报文的限速时间计数寄存器 6-22
0x03C0 MDIO_SINGLE_CMD MDIO单次操作寄存器 6-23
0x03C4 MDIO_SINGLE_DATA MDIO读写数据寄存器 6-23
0x05C4 ENA_PMU_INT PMU模块原始中断使能寄存器 6-24
0x05C8 STATUS_PMU_INT PMU模块中断状态寄存器 6-28
0x05CC DESC_WR_RD_ENA CFF读写描述子使能寄存器 6-32
0x300C MAC_IF_STAT_CTRL MAC_IF模式控制寄存器 6-33

GMAC寄存器描述

STATION_ADDR_LOW

STATION_ADDR_LOW为本机MAC地址寄存器。

Offset Address: 0x0000 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:0] RW station_addr_low MAC_CORE的MAC源地址低32bit。 0x00000000

STATION_ADDR_HIGH

STATION_ADDR_HIGH为本机MAC地址寄存器。

Offset Address: 0x0004 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:16] - reserved 保留。 0x0000
[15:0] RW station_addr_high MAC_CORE的MAC源地址高16bit,可默认。 0x0000

DUPLEX_SEL_RGMII

DUPLEX_SEL_RGMII为半双工选择寄存器。

Offset Address: 0x0008 Total Reset Value: 0x0000_0001

Bits Access Name Description Reset
[31:1] - reserved 保留。 0x00000000
[0] RW duplex_sel_rgmii 半双工选择信号。 0:半双工; 1:全双工。 0x1

FD_FC_TYPE

FD_FC_TYPE为流控帧类型域寄存器。

Offset Address: 0x000C Total Reset Value: 0x0000_8808

Bits Access Name Description Reset
[31:16] - reserved 保留。 0x0000
[15:0] RW fd_fc_type 全双工模式下流控帧TYPE域。 0x8808

COL_DISTANCE

COL_DISTANCE为单次重传包长水线寄存器。

Offset Address: 0x0014 Total Reset Value: 0x0000_0043

Bits Access Name Description Reset
[31:10] - reserved 保留。 0x000000
[9:0] RW col_distance 单次重传包长水线。 0x043

PAUSE_THR

PAUSE_THR为发送流控帧间隙寄存器。

Offset Address: 0x0038 Total Reset Value: 0x0000_002F

Bits Access Name Description Reset
[31:16] RO reserved 保留。 0x0000
[15:0] RW pause_thr 流控帧间隔时间,若流控时间大于间隔时间,MAC自动发送流控帧。以512bit为时间单位。 0x002F

MAX_FRM_SIZE

MAX_FRM_SIZE为最大帧长寄存器。

Offset Address: 0x003C Total Reset Value: 0x0000_05EE

Bits Access Name Description Reset
[31:14] - reserved 保留。 0x00000
[13:0] RW max_frm_size MAC部分允许的最大帧长。 当接收到大于该帧长的帧时,将该帧认为超长错误帧;当发送帧超过该帧长的帧时,将发送帧截断后做为错帧发送。 0x05EE

PORT_MODE

PORT_MODE为端口状态寄存器。

Offset Address: 0x0040 Total Reset Value: 0x0000_0001

Bits Access Name Description Reset
[31:3] - reserved 保留。 0x00000000
[2:0] RW port_mode 指示当前MAC端口工作的模式。 000:10Mbps; 001:100Mbps; 101:1000Mbps; 其他:保留。 0x1

PORT_EN

PORT_EN为通道使能寄存器。

Offset Address: 0x0044 Total Reset Value: 0x0000_0006

Bits Access Name Description Reset
[31:3] - reserved 保留。 0x00000000
[2] RW tx_en 发送通道使能位。 0:不使能; 1:使能。 0x1
[1] RW rx_en 接收通道使能位。 0:不使能; 1:使能。 0x1
[0] - reserved 保留。 0x0

PAUSE_EN

PAUSE_EN为流控使能寄存器。

Offset Address: 0x0048 Total Reset Value: 0x0000_0007

Bits Access Name Description Reset
[31:2] RO reserved 保留。 0x00000001
[1] RW tx_fdfc 全双工模式下发送流控帧使能。 0:不使能; 1:使能。 0x1
[0] RW rx_fdfc 全双工模式下响应流控帧使能。 0:不使能; 1:使能。 0x1

SHORT_RUNTS_THR

SHORT_RUNTS_THR为超短帧界限寄存器。

Offset Address: 0x0050 Total Reset Value: 0x0000_000C

Bits Access Name Description Reset
[31:5] RO reserved 保留。 0x0000000
[4:0] RW short_runts_thr 短帧、超短帧界限(只用于统计短帧、超短帧计数)。 0x0C

DROP_UNK_CTL_FRM

DROP_UNK_CTL_FRM为未知控制帧丢弃使能寄存器。

Offset Address: 0x0054 Total Reset Value: 0x0000_0001

Bits Access Name Description Reset
[31:1] RO reserved 保留。 0x00000000
[0] RW drop_unk_ctl_frm 未知控制帧处理位。 0:正常转发未知控制帧; 1:丢弃未知控制帧。 0x1

TRANSMIT_CONTROL

TRANSMIT_CONTROL为常用配置寄存器。

Offset Address: 0x0060 Total Reset Value: 0x0000_00C0

Bits Access Name Description Reset
[31:8] - reserved 保留。 0x000000
[7] RW pad_enable 发送添加PAD使能。 0:不使能; 1:使能。 0x1
[6] RW crc_add 发送添加FCS使能。 0:不使能; 1:使能。 0x1
[5:0] - reserved 保留。 0x00

REC_FILT_CONTROL

REC_FILT_CONTROL为接收帧过滤控制寄存器。

Offset Address: 0x0064 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:6] - reserved 保留。 0x0000000
[5] RW crc_err_pass 过滤CRC错误帧使能。 0:不使能; 1:使能,表示把CRC错误帧丢弃。 0x0
[4] RW pause_frm_pass 过滤流控帧使能。 0:不使能,流控使能有效才起作用,要上传至软件; 1:使能,流控使能有效才起作用,不上传至软件。 0x0
[3] RW vlan_drop_en 过滤VLAN帧使能。 0:不使能; 1:使能。 0x0
[2] RW bc_drop_en 过滤广播帧使能。 0:不使能; 1:使能。 0x0
[1] RW mc_match_en 过滤DA不匹配的多播帧使能。 0:不使能; 1:使能。 0x0
[0] RW uc_match_en 过滤DA不匹配的单播帧使能。 0:不使能; 1:使能。 0x0

RX_OCTETS_OK_CNT

RX_OCTETS_OK_CNT为接收有效帧的字节统计寄存器。

Offset Address: 0x0080 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:0] RC rx_octets_ok_cnt 接收有效帧字节统计,范围包括DA~FCS。 0x00000000

RX_OCTETS_BAD_CNT

RX_OCTETS_BAD_CNT为接收错误帧字节统计寄存器。

Offset Address: 0x0084 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:0] RC rx_octets_bad_cnt 接收错帧字节统计,包括CRC错误,对齐错误等。 0x00000000

RX_UC_PKTS

RX_UC_PKTS为MAC接收单播帧数统计寄存器。

Offset Address: 0x0088 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:0] RC rx_uc_pkts_cnt 接收单播帧数统计(不包括错帧)。 0x00000000

RX_MC_PKTS

RX_MC_PKTS为接收多播帧数统计寄存器。

Offset Address: 0x008C Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:0] RC rx_mc_pkts_cnt 接收多播帧数统计(不包括错帧)。 0x00000000

RX_BC_PKTS

RX_BC_PKTS为接收的广播帧数统计寄存器。

Offset Address: 0x0090 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:0] RC rx_bc_pkts_cnt 接收广播帧数统计(不包括错帧)。 0x00000000

RX_FCS_ERRORS

RX_FCS_ERRORS为接收CRC检验错误的帧数统计寄存器。

Offset Address: 0x00B0 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:0] RC rx_fcs_errors CRC检测错误的帧数统计(不包括短帧)。 0x00000000

OCTETS_TRANSMITTED_OK

OCTETS_TRANSMITTED_OK为发送成功的好包字节数统计寄存器。

Offset Address: 0x0100 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:0] RC octets_transmitted_ok 发送成功的好包字节数(不包括前导码和SFD)。 0x00000000

OCTETS_TRANSMITTED_BAD

OCTETS_TRANSMITTED_BAD为发送成功的错包字节数统计寄存器。

Offset Address: 0x0104 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:0] RC octets_transmitted_bad 发送成功的错包的字节数。 0x00000000

TX_UC_PKTS

TX_UC_PKTS为发送的单播帧数统计寄存器。

Offset Address: 0x0108 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:0] RC tx_uc_pkts 发送的单播帧数统计(不包括错包)。 0x00000000

TX_MC_PKTS

TX_MC_PKTS为发送的多播帧数统计寄存器。

Offset Address: 0x010C Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:0] RC tx_mc_pkts 发送的多播帧数统计(不包括错包)。 0x00000000

TX_BC_PKTS

TX_BC_PKTS为发送的广播帧数统计寄存器。

Offset Address: 0x0110 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:0] RC tx_bc_pkts 发送的广播帧数(不包括错包)。 0x00000000

TX_CRC_ERROR

TX_CRC_ERROR为发送帧长正确CRC错误的帧数统计寄存器。

Offset Address: 0x0158 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:0] RC tx_crc_error 发送帧长正确而CRC错误的帧数目统计。 0x00000000

CF_CRC_STRIP

CF_CRC_STRIP为CRC剥离使能寄存器。

Offset Address: 0x01B0 Total Reset Value: 0x0000_0001

Bits Access Name Description Reset
[31:1] - reserved 保留。 0x00000000
[0] RW cf_crc_strip MAC剥离接收方向CRC使能。 0:不使能,上报包长包括CRC的4字节; 1:使能,剥离后上报包长不包括CRC的4字节。 0x1

MODE_CHANGE_EN

MODE_CHANGE_EN为端口模式改变使能寄存器。

Offset Address: 0x01B4 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:1] - reserved 保留。 0x00000000
[0] RW mode_change_en port_mode改变生效使能。 0:不使能; 1:使能。 0x0

COL_SLOT_TIME

COL_SLOT_TIME为半双工冲突重传间隔时间计数器寄存器。

Offset Address: 0x01C0 Total Reset Value: 0x0000_40FF

Bits Access Name Description Reset
[31:24] RO reserved 保留。 0x00
[23:8] RW cf2bc_slottime 半双工冲突重传单位间隔时间。 0x0040
[7:0] RW cf2bc_random_seed 半双工冲突重传随机倍数基数。 0xFF

RECV_CONTROL

RECV_CONTROL为接收控制寄存器。

Offset Address: 0x01E0 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:5] - reserved 保留。 0x0000000
[4] RW runt_pkt_en 接收超短帧透穿功能。 0:丢弃,不上传给软件; 1:上传给软件。 0x0
[3] RW strip_pad_en 剥离接收帧的PAD使能。 0:不使能; 1:使能。 0x0
[2:0] - reserved 保留。 0x0

VLAN_CODE

VLAN_CODE为VLAN Code寄存器。

Offset Address: 0x01E8 Total Reset Value: 0x0000_8100

Bits Access Name Description Reset
[31:16] RO reserved 保留。 0x00000
[15:0] RW cf_vlan_code Ethernet Type域配置。 0x8100

CRF_MAX_PACKET

CRF_MAX_PACKET为最大过滤包长寄存器。

Offset Address: 0x020C Total Reset Value: 0x05EE_0000

Bits Access Name Description Reset
[31:27] RO reserved 保留。 0x0
[26:16] RW crf_tx_max_packet PMU中允许的normal包和SG包最大长度。 0x5EE
[15:0] RO reserved 保留。 0x0000

CRF_MIN_PACKET

CRF_MIN_PACKET为最小过滤包长寄存器。

Offset Address: 0x0210 Total Reset Value: 0x0000_0F2A

Bits Access Name Description Reset
[31:14] - reserved 保留。 0x00000
[13:8] RW crf_tx_min_packet 发送方向配置的最小发送包长度,默认为15byte。 0x0F
[7:6] - reserved 保留。 0x0
[5:0] RW crf_rx_min_packet 接收方向配置的最小发送包长度,默认为42byte。 0x2A

CONTROL_WORD

CONTROL_WORD为控制寄存器。

Offset Address: 0x0214 Total Reset Value: 0x0000_0640

Bits Access Name Description Reset
[31:26] - reserved 保留。 0x00
[25] RW crf_tx_standard 发送FIFO的发送水线设置标准。 0:按包和将空水线设置。当发送FIFO中有一个完整的包,或者发送FIFO中的有效数据个数大于等于4倍的发送水线时,即向MAC发送读请求; 1:按包设置;当发送FIFO中有一个完整的包时,才向MAC发送读请求。 0x0
[24:22] - reserved 保留。 0x0
[21] RW crf_ip_flow_ctrl IP报文限速使能。 0:不限速; 1:限速。 0x0
[20] - reserved 保留。 0x0
[19:18] - reserved 保留。 0x0
[17] RW crf_filt_unused_pkg 过滤非法报文控制。 0不过滤; 1:过滤。 0x0
[16] RW crf_bm_flow_ctrl 对广播或多播报文流控控制。 0:不流控; 1:流控。 0x0
[15:14] - reserved 保留。 0x0
[13:0] RW crf_large_packet 配置的最大包长度,默认为1600byte(PMU使用的最大包长)。 0x0640

FLOW_CTRL_PKG_THRSLD

FLOW_CTRL_PKG_THRSLD为限速包个数寄存器。

Offset Address: 0x0218 Total Reset Value: 0xFFFF_0000

Bits Access Name Description Reset
[31:16] RW crf_ip_pkg_thrsld IP报文的包上限,当在T时间内接收的IP报文超过该数,则进行限速,否则,不限速。 0xFFFF
[15:0] - reserved 保留。 0x0000

CRF_FLOW_TIME_THRSLD

CRF_FLOW_TIME_THRSLD为限速时间寄存器。

Offset Address: 0x021C Total Reset Value: 0x0000_00FF

Bits Access Name Description Reset
[31:8] - reserved 保留。 0x000000
[7:0] RW crf_flow_time_thrsld 限速处理的时间,以125μs为单位。 限速时间T=(crf_flow_time_thrsld+1)(125μs) 0xFF

CRF_BM_PKT_THRSLD

CRF_BM_PKT_THRSLD为广播和多播报文的限速处理包个数寄存器。

Offset Address: 0x0358 Total Reset Value: 0x0000_0001

Bits Access Name Description Reset
[31:16] - reserved 保留。 0x0000
[15:0] RW crf_bm_pkt_thrsld 广播和多播报文的包上限,当在限速单位时间内接收的广播或多播报文超过该数,则进行限速,否则不限速。 0x0001

TSO_COE_CTRL

TSO_COE_CTRL为TSO开关和COE过滤开关寄存器。

Offset Address: 0x02E8 Total Reset Value: 0x8000_0081

Bits Access Name Description Reset
[31:16] - reserved 保留。 0x8000
[15:8] - reserved 保留。 0x00
[7] RW coe_drop_cnt_en 接收报文统计计数使能。 0:关闭; 1:打开。 0x1
[6] RW coe_ipv6udp_zero_drop 接收报文IPv6 UDP checksum为0的包是否配置丢弃。 0:关闭; 1:打开。 0x0
[5] RW coe_payload_drop 接收报文TCP/UDP checksum错误的包是否配置丢弃。 0:关闭; 1:打开。 0x0
[4] RW coe_iphead_drop 接收报文IPv4头checksum错误的包是否配置丢弃。 0:关闭; 1:打开。 0x0
[3:0] - reserved 保留。 0x1

CRF_BM_TIME_THRSLD

CRF_BM_TIME_THRSLD为广播和多播报文的限速时间计数寄存器。

Offset Address: 0x035C Total Reset Value: 0x0000_2710

Bits Access Name Description Reset
[31:20] RO reserved 保留。 0x000
[19:0] RW crf_bm_time_thrsld 广播和多播报文的限速时间上限,以1us为单位进行计数,当等于该计数值时,为一个限速单位时间。 0x02710

MDIO_SINGLE_CMD

MDIO_SINGLE_CMD为MDIO单次操作寄存器。

Offset Address: 0x03C0 Total Reset Value: 0x0001_0000

Bits Access Name Description Reset
[31:21] - reserved 保留。 0x000
[20] RW mdio_cmd MDIO操作完成指示。 0:MDIO操作完成; 1:启动MDIO操作。 0x0
[19:18] - reserved 保留。 0x0
[17:16] RW op_code MDIO操作类型。 00:保留; 01:写操作; 10:读操作; 11:保留。 0x1
[15:13] - reserved 保留。 0x0
[12:8] RW phy_addr 配置外部PHY地址的5bit。 0x00
[7:5] - reserved 保留。 0x0
[4:0] RW reg_addr PHY器件内部的寄存器地址。 0x00

MDIO_SINGLE_DATA

MDIO_SINGLE_DATA为MDIO读写数据寄存器。

Offset Address: 0x03C4 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:16] RO mdio_rd_data MDIO从外部PHY器件回读的数据。 0x0000
[15:0] RW mdio_wr_data MDIO写数据。 0x0000

ENA_PMU_INT

ENA_PMU_INT为PMU模块原始中断使能寄存器。

Offset Address: 0x05C4 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31] RO reserved 保留。 0x0
[30] RW ena_mac_fifo_err_int MAC内部FIFO错误中断使能。 0:不使能; 1:使能。 0x0
[29] RW ena_tx_rq_in_timeout_int 发送方向的RQ队列描述子入队超时中断使能。 0:不使能; 1:使能。 0x0
[28] RW ena_rx_bq_in_timeout_int 接收方向的BQ队列描述子入队超时中断使能。 0:不使能; 1:使能。 0x0
[27] RW ena_txoutcff_full_int 发送方向DESC_OUTCFF满中断使能。 0:不使能; 1:使能。 0x0
[26] RW ena_txoutcff_empty_int 发送方向DESC_OUTCFF空中断使能。 0:不使能; 1:使能。 0x0
[25] RW ena_txcff_full_int 发送方向DESC_FIFO满中断使能。 0:不使能; 1:使能。 0x0
[24] RW ena_txcff_empty_int 发送方向DESC_FIFO空中断使能。 0:不使能; 1:使能。 0x0
[23] RW ena_rxoutcff_full_int 接收方向DESC_OUTCFF满中断使能。 0:不使能; 1:使能。 0x0
[22] RW ena_rxoutcff_empty_int 接收方向DESC_OUTCFF空中断使能。 0:不使能; 1:使能。 0x0
[21] RW ena_rxcff_full_int 接收方向DESC_FIFO满中断使能。 0:不使能; 1:使能。 0x0
[20] RW ena_rxcff_empty_int 接收方向DESC_FIFO空中断使能。 0:不使能; 1:使能。 0x0
[19] RW ena_tx_rq_in_int 发送方向tx_rq队列的描述子入队(多个或者单个描述子入队)中断使能。 0:不使能; 1:使能。 0x0
[18] RW ena_tx_bq_out_int 发送方向tx_bq队列的描述子出队(多个或者单个描述子出队)中断使能。 0:不使能; 1:使能。 0x0
[17] RW ena_rx_bq_in_int 接收方向rx_bq队列的描述子入队(多个或者单个描述子入队)中断使能。 0:不使能; 1:使能。 0x0
[16] RW ena_rx_fq_out_int 接收方向rx_fq队列的描述子出队(多个或者单个描述子出队)中断使能。 0:不使能; 1:使能。 0x0
[15] RW ena_tx_rq_empty_int 发送方向的回收描述子队列空中断使能。 0:不使能; 1:使能。 0x0
[14] RW ena_tx_rq_full_int 发送方向的回收描述子队列满中断使能。 0:不使能; 1:使能。 0x0
[13] RW ena_tx_rq_alempty_int 发送方向的回收描述子队列几乎空中断使能。 0:不使能; 1:使能。 0x0
[12] RW ena_tx_rq_alfull_int 发送方向的回收描述子队列几乎满中断使能。 0:不使能; 1:使能。 0x0
[11] RW ena_tx_bq_empty_int 发送方向的buff描述子队列空中断使能。 0:不使能; 1:使能。 0x0
[10] RW ena_tx_bq_full_int 发送方向的buff描述子队列满中断使能。 0:不使能。 1:使能 0x0
[9] RW ena_tx_bq_alempty_int 发送方向的buff描述子队列几乎空中断使能。 0:不使能; 1:使能。 0x0
[8] RW ena_tx_bq_alfull_int 发送方向的buff描述子队列几乎满中断使能。 0:不使能; 1:使能。 0x0
[7] RW ena_rx_bq_empty_int 接收方向的buff描述子队列空中断使能。 0:不使能; 1:使能。 0x0
[6] RW ena_rx_bq_full_int 接收方向的buff描述子队列满中断使能。 0:不使能; 1:使能。 0x0
[5] RW ena_rx_bq_alempty_int 接收方向的buff描述子队列几乎空中断使能。 0:不使能; 1:使能。 0x0
[4] RW ena_rx_bq_alfull_int 接收方向的buff描述子队列几乎满中断使能。 0:不使能; 1:使能。 0x0
[3] RW ena_rx_fq_empty_int 接收方向的空闲描述子队列空中断使能。 0:不使能; 1:使能。 0x0
[2] RW ena_rx_fq_full_int 接收方向的空闲描述子队列满中断使能。 0:不使能; 1:使能。 0x0
[1] RW ena_rx_fq_alempty_int 接收方向的空闲描述子队列几乎空中断使能。 0:不使能; 1:使能。 0x0
[0] RW ena_rx_fq_alfull_int 接收方向的空闲描述子队列几乎满中断使能。 0:不使能; 1:使能。 0x0

STATUS_PMU_INT

STATUS_PMU_INT为PMU模块中断状态寄存器。

Offset Address: 0x05C8 Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31] - reserved 保留。 0x0
[30] RW status_mac_fifo_err_int MAC内部FIFO又空又满错误中断状态。 0:无中断; 1:有中断。 0x0
[29] RW status_tx_rq_in_timeout_int 发送方向的RQ队列描述子入队超时中断状态。 0:无中断; 1:有中断。 0x0
[28] RW status_rx_bq_in_timeout_int 接收方向的BQ队列描述子入队超时中断状态。 0:无中断; 1:有中断。 0x0
[27] RW status_txoutcff_full_int 发送方向DESC_OUTCFF满中断状态。 0:无中断; 1:有中断。 0x0
[26] RW status_txoutcff_empty_int 发送方向DESC_OUTCFF空中断状态。 0:无中断; 1:有中断。 0x0
[25] RW status_txcff_full_int 发送方向DESC_FIFO满中断状态。 0:无中断; 1:有中断。 0x0
[24] RW status_txcff_empty_int 发送方向DESC_FIFO空中断状态。 0:无中断; 1:有中断。 0x0
[23] RW status_rxoutcff_full_int 接收方向DESC_OUTCFF满中断状态。 0:无中断; 1:有中断。 0x0
[22] RW status_rxoutcff_empty_int 接收方向DESC_OUTCFF空中断状态。 0:无中断; 1:有中断。 0x0
[21] RW status_rxcff_full_int 接收方向DESC_FIFO满中断状态。 0:无中断; 1:有中断。 0x0
[20] RW status_rxcff_empty_int 接收方向DESC_FIFO空中断状态。 0:无中断; 1:有中断。 0x0
[19] RW status_tx_rq_in_int 发送方向tx_rq队列的描述子入队(多个或者单个描述子入队)中断状态。 0:无中断; 1:有中断。 0x0
[18] RW status_tx_bq_out_int 发送方向tx_bq队列的描述子出队(多个或者单个描述子出队)中断状态。 0:无中断; 1:有中断。 0x0
[17] RW status_rx_bq_in_int 接收方向rx_bq队列的描述子入队(多个或者单个描述子入队)中断状态。 0:无中断; 1:有中断。 0x0
[16] RW status_rx_fq_out_int 接收方向rx_fq队列的描述子出队(多个或者单个描述子出队)中断状态。 0:无中断; 1:有中断。 0x0
[15] RW status_tx_rq_empty_int 发送方向的回收描述子队列空中断状态。 0:无中断; 1:有中断。 0x0
[14] RW status_tx_rq_full_int 发送方向的回收描述子队列满中断状态。 0:无中断; 1:有中断。 0x0
[13] RW status_tx_rq_alempty_int 发送方向的回收描述子队列几乎空中断状态。 0:无中断; 1:有中断。 0x0
[12] RW status_tx_rq_alfull_int 发送方向的回收描述子队列几乎满中断状态。 0:无中断; 1:有中断。 0x0
[11] RW status_tx_bq_empty_int 发送方向的buff描述子队列空中断状态。 0:无中断; 1:有中断。 0x0
[10] RW status_tx_bq_full_int 发送方向的buff描述子队列满中断状态。 0:无中断; 1:有中断。 0x0
[9] RW status_tx_bq_alempty_int 发送方向的buff描述子队列几乎空中断状态。 0:无中断; 1:有中断。 0x0
[8] RW status_tx_bq_alfull_int 发送方向的buff描述子队列几乎满中断状态。 0:无中断; 1:有中断。 0x0
[7] RW status_rx_bq_empty_int 接收方向的buff描述子队列空中断状态。 0:无中断; 1:有中断。 0x0
[6] RW status_rx_bq_full_int 接收方向的buff描述子队列满中断状态。 0:无中断; 1:有中断。 0x0
[5] RW status_rx_bq_alempty_int 接收方向的buff描述子队列几乎空中断状态。 0:无中断; 1:有中断。 0x0
[4] RW status_rx_bq_alfull_int 接收方向的buff描述子队列几乎满中断状态。 0:无中断; 1:有中断。 0x0
[3] RW status_rx_fq_empty_int 接收方向的空闲描述子队列空中断状态。 0:无中断; 1:有中断。 0x0
[2] RW status_rx_fq_full_int 接收方向的空闲描述子队列满中断状态。 0:无中断; 1:有中断。 0x0
[1] RW status_rx_fq_alempty_int 接收方向的空闲描述子队列几乎空中断状态。 0:无中断; 1:有中断。 0x0
[0] RW status_rx_fq_alfull_int 接收方向的空闲描述子队列几乎满中断状态。 0:无中断; 1:有中断。 0x0

DESC_WR_RD_ENA

DESC_WR_RD_ENA为cff读写描述子使能寄存器。

Offset Address: 0x05CC Total Reset Value: 0x0000_0000

Bits Access Name Description Reset
[31:4] RO reserved 保留。 0x0000000
[3] RW rx_outcff_wr_desc_ena 接收方向的RX_OUTCFF向RX_BQ中写入desc使能。 0:不使能; 1:使能。 0x0
[2] RW rx_cff_rd_desc_ena 接收方向的RX_CFF从空闲描述子队列中读取desc使能。 0:不使能; 1:使能。 0x0
[1] RW tx_outcff_wr_desc_ena 发送方向的TX_OUTCFF向TX_RQ中写入desc使能。 0:不使能; 1:使能。 0x0
[0] RW tx_cff_rd_desc_ena 发送方向的TX_CFF从TX_BQ中读取desc使能。 0:不使能; 1:使能。 0x0

MAC_IF_STAT_CTRL

MAC_IF_STAT_CTRL为MAC_IF模式控制寄存器寄存器。

Offset Address: 0x300C Total Reset Value: 0x0000_003F

Bits Access Name Description Reset
[31:8] - reserved 保留。 0x000000
[7:5] RW phy_select PHY接口模式。 001:RGMII mode; 100:RMII mode; 其他:保留。 0x1
[4] RW duplex_mode PHY双工模式。 0:半双工模式; 1:全双工模式。 0x1
[3] RW tx_config 发送配置使能信号。 0:Tx Config Disable; 1:Tx Config Enable。 0x1
[2] RW link_status PHY连接状态控制。 0:Link Down; 1:Link Up。 0x1
[1] RW mac_speed 10/100Mbps模式。 0:10Mbps; 1:100Mbps。 0x1
[0] RW port_select 网口模式选择。 0:1000Mbps; 1:10/100Mbps。 0x1